package com.example.demo.service;

import com.example.demo.entity.Consultant;
import com.example.demo.entity.Supervisor;
import com.example.demo.exception.EntityAlreadyExistException;
import com.example.demo.exception.EntityNotExistException;
import net.bytebuddy.implementation.bind.annotation.Super;

import java.util.List;

public interface SupervisorService {
    /**
     *
     * @param supervisor
     * @return String supervisor 的 id，而非 consultant_id
     * @throws EntityAlreadyExistException
     */
    String addSupervisor(Supervisor supervisor) throws EntityAlreadyExistException;

    boolean existSupervisor(String id);

    void deleteSupervisor(String id);

    void deleteSupervisors(List<String> ids);

    void updateSupervisor(String id, Supervisor supervisor) throws EntityNotExistException;

    Supervisor getSupervisor(String id) throws EntityNotExistException;

    List<Supervisor> getAllSupervisor();

    List<Consultant> getBoundConsultants(String supervisorId);

    List<Supervisor> getSupervisors(List<String> ids);

    Supervisor getSupervisorByConsultantId(String id) throws EntityNotExistException;
}
